/**
 * server2解决了serve1的重复代码问题
 * 这里的代码就是所有代码的总入口和总出口
 * 就像橄榄的两头
 */
import factory from './factory'

function serve({ serviceName = '', serviceArguments = {} }) {
  const {
    url,
    options,
  } = factory({ serviceName, serviceArguments})
  return fetch(url, { ...options }).then(res => res.json())
}

// 第二种实现方式
export default new Proxy({}, {
  get(target, serviceName) {
    return serviceArguments => serve({ serviceName, serviceArguments })
  }
})

// 第一种实现方式
// export default Object.keys(API).reduce((pre, serviceName) => {
//   pre[serviceName] = serviceArguments => serve({ serviceName, serviceArguments })
//   return pre
// }, {})

